In a wireless network, e.g., an ad hoc network, in which a network infrastructure does not exist or is not used, a terminal has to combat certain challenges in order to set up a communication link with another peer terminal. One challenge is to determine what other devices are within a geographic region and what capabilities the devices have for communicating. Another challenge is establishing a network which supports communications between devices with differing capabilities.
It is useful to discuss protocol layering with respect to the global Internet. The Internet effectively adopted a 4-layer protocol stack comprising link, network, transport and application layers. However, the meaning of Internet layering differs somewhat from the OSI model. The Internet (shorthand for Inter-network) is a network of interconnected computer networks used to exchange data over a connectionless, packet-switched topology in accordance with an Internet Protocol (IP). As such it is a “network of networks”. The networks are interconnected by packet-switching computers called “routers” which forward data between directly connected networks. Each individual network is viewed as a “subnetwork” from the IP or internet layer perspective. There is no constraint on the nature or size of a subnetwork; e.g. the entire globally networked GSM system or a single strand of Ethernet cable are each a subnetwork to the IP layer. Each subnetwork technology in toto is referred to as a “link layer” technology in the protocol layering of the Internet. Thus, from an Internet perspective, the entire 7-layer OSI stack of any given network technology may be viewed as a form of link layer transport to the IP layer, which is the network layer of the Internet, over which run transport and application layer protocols.
A distinction in practice between networks built in accordance with the OSI or Internet layering models is that the latter creates a single, homogenous network layer protocol (i.e. IP) which persists over top all link layer technologies, whereas the former typically invents a new network layer protocol for each technology. The Internet approach enables communications thru intermediary network switching elements to consist of “routers” which undertake packet forwarding over a connectionless topology of subnetwork links (each an individual network technology in its own right). The OSI approach typically requires intermediary elements to act as protocol “gateways” which require protocol conversion between disparate network layers to facilitate inter-network communications.
Devices may use one or more protocols at a given layer. Using the Internet layering model as a reference, examples of link layer protocols include GSM, CDMA, and OFDM protocols. 802.11B and 802.11g are examples of two different OFDM-based protocols, both of which correspond to the link layer of the Internet model. Examples of network layer protocols include IP, ICMP, and IGMP to name a few. Examples of transport layer protocols include TCP and UDP to name but a few. Application layer protocols include such protocols as SIP, HTTP and others.
The set of protocols a device uses to support a communications session is often called a protocol stack. Devices may have the capability of supporting one or more protocol stacks, may be able to support multiple stacks at a given time, and may need to select between which supported protocol stacks should be used at a given time. As can be appreciated, given that a number of protocols may be supported at any given layer, a communications device is confronted with a large number of protocol combinations, e.g., protocol stacks, from which it may select when attempting to communicate with another device.
In relatively homogenous systems, the capabilities of other devices within the network may be known or the protocol stacks of the various devices preconfigured so that devices corresponding to the same network can communicate with one another.
In a heterogeneous networking context, e.g. an ad hoc network situation, a communications device may be confronted with a situation where it may not have any predetermined knowledge of the capabilities of other devices in the region and/or there may not be a predetermined protocol stack which enables the exchange of user data, e.g., voice, text, image data or other application data, between the devices. If the communications device selects the wrong device configuration and/or protocol stack, it may not be able to communicate with a neighboring device and/or the quality of communications may be lower than could have been achieved with the selection of a better protocol stack/device configuration.
In cases where ad hoc networks are constructed of devices with differing capabilities, some devices because of their limited capabilities may not be able to support the exchange of user data due to device and/or protocol limitations. For example, in current systems mobile devices which support CDMA but not GSM may not be able to communicate with mobile devices which support GSM but not CDMA without going through an infrastructure system which normally involves the use of multiple base stations and possible protocol conversions.
Accordingly, it should be appreciated that it would be beneficial if devices in an ad hoc network or other non-homogenous networking context could communicate device capability information to one another without regard for their ability to select an appropriate protocol stack which might be needed to support the exchange of user data and/or to support relatively high data rate communications. While the ability to transmit and receive device capability information to other devices is desirable, it is desirable that methods and apparatus for communicating such information be capable of being implemented in a relatively simple manner, e.g., without the need for complicated and expensive receivers.
In addition to communicating device capability information, it would be desirable if devices in an ad hoc network could take advantage of the different capabilities of different devices in the network to allow communications between devices which could not otherwise support a communications session, e.g., a communications session which could be used to exchange user data.
In view of the above discussion, it should be appreciated that there is a need not only for methods and apparatus for exchanging user data but also for supporting communications between devices which do not support the same lower level protocols, for data communications e.g., link layer protocols capable of supporting the exchange of higher layer user data. From a cost perspective, it would be desirable if the methods and apparatus of supporting communications between devices which do not support the same sets of protocols, e.g., protocol stacks, could be implemented by taking advantage of the presence of other communications devices present in the ad hoc network which support multiple protocols and/or protocol stacks, as part of their normal function. This would allow users of inexpensive communications devices, e.g., users of CDMA devices and users of GSM devices, which could not normally interoperate, to communicate with one another by taking advantage of the fact that some devices in the system support multiple protocols, e.g., GSM and CDMA.